SCS Software : Sous le capot - Nouveau système de lumières
■ Posté le 15/03/2021 par Mel85 dans Autres Projets ■
Bonjour à tous ! Hier, SCS Software nous a encore réservé une news un peu spéciale et relativement longue à traduire.
En effet, les développeurs ont décidé d'expliquer l'implémentation du nouveau système d'éclairage via la série "Sous le capot" pour nous éclairer sur son fonctionnement, sa mise en place et tout ce que cela implique pour le studio Tchèque. Je vous laisse prendre connaissance de l'article officiel et vous souhaite une bonne journée
----------------------------------------------------------------------------------------------------
ARTICLE OFFICIEL (TRADUCTION)
----------------------------------------------------------------------------------------------------
Les changements que nous introduisons avec la mise à jour 1.40 pour American Truck Simulator et Euro Truck Simulator 2 sont visibles pour le public depuis un certain temps déjà, dans les bêta ouvertes qui sont toujours en cours. Le changement le plus visible est de loin le nouveau système d'éclairage, qui s'est avéré être le plus grand remaniement graphique depuis des années. Dans l'article d'aujourd'hui, nous aimerions vous en dire plus sur ce que nous avons fait pour réaliser ce changement. Regardons une fois de plus sous le capot.
Que la lumière soit !
L'approche de notre moteur 3D pour représenter la lumière et la couleur dans les scènes (et dans les tampons de trame qui finissent par être affichés à l'écran) a été établie il y a plus de dix ans. À cette époque, la règle technique consistait à représenter toutes les valeurs RVB dans la plage numérique 0-255, afin de tenir dans un byte d'information. C'est ainsi que toutes les valeurs étaient définies, que ce soit dans un texel d'une cartographie UV (la "peau" d'un objet 3D, d'un arbre, d'un véhicule ou d'une skybox), ou dans l'encodage de l'intensité d'une source lumineuse (des feux arrière d'un véhicule aux lampadaires, jusqu'à l'intensité du soleil), et en combinant tout cela dans l'étape de rendu en un pixel. Il s'agissait encore de la représentation dans le tampon de trame qui serait affichée à l'écran, avec seulement 256 nuances de chaque couleur de base.
Ces dernières années, l'explosion de la mémoire disponible dans les processeurs 3D, les progrès de la puissance de calcul et la flexibilité des langages de nuanceurs pour la programmation des opérations des cartes 3D sur les fragments ont ouvert la voie au stockage et au calcul des valeurs de couleur et de lumière avec une précision et une portée bien supérieures (avec des nombres à virgule flottante). Au lieu de se contenter de superposer les opérations de filtrage des couleurs, ce qui était, essentiellement, toutes les astuces dont nous disposions à l'époque des 8 bits par composante de couleur, le passage à l'utilisation de nombres réels est une véritable révolution dans la façon dont un moteur de jeu peut vraiment représenter les sources de lumière dans des gammes et des rapports réalistes. Dans le monde réel, la différence entre l'intensité d'une ampoule et la lumière du soleil est de plusieurs ordres de grandeur. Si nous sommes en mesure de stocker correctement les valeurs d'intensité des sources de lumière et, plus important encore, d'effectuer toutes les opérations de lumière par rapport à la surface dans leurs plages de valeurs appropriées, sans perte majeure de précision, nous pouvons réaliser une véritable lumière à grande gamme dynamique (HDR) dans le processus graphique. Lorsque nous avons commencé à expérimenter cette nouvelle technique il y a 18 mois et que nous avons vu les premiers résultats, nous ne pouvions plus faire marche arrière, nous savions que nous voulions l'intégrer au moteur.
Quelles sont les nouveautés ?
Nous avons dû commencer par les sources de lumière (et pendant un moment, nous avons espéré que cela suffirait). Chaque source de lumière est désormais définie par une valeur réaliste, glanée à partir de mesures réelles (nous avons effectué une tonne d'échantillonnages avec un posemètre sur différents paramètres de lumière du jour et de météo) et de tables de référence. Dans la réalité comme dans l'univers du jeu désormais, des dizaines de milliers de lux éclairent désormais les scènes de jour, tandis que la nuit, la luminosité ambiante se limite à quelques lux. Le fait de baser toutes les valeurs des sources lumineuses sur la réalité nous donne beaucoup plus de confiance par rapport à l'époque où une nouvelle lumière s'intégrait simplement dans le système. Il ne s'agit plus de se demander s'il s'agit d'un 150 ou d'un 170 sans que les valeurs aient une signification réelle. Désormais, nous savons et avons des tables de sélection pour un lampadaire ou un néon dans une station-service. Dans les formules de calcul de la lumière, nous pouvons maintenant utiliser une atténuation quadratique appropriée pour que les lumières se comportent d'une manière physiquement correcte. Avec une plus grande précision, nous pouvons même aller jusqu'à introduire une petite variation aléatoire de l'intensité lumineuse dans des sources lumineuses par ailleurs identiques, pour mieux simuler la sensation nocturne d'une rue, sans avoir des lampes anormalement identiques.
Une fois tous les calculs de lumière interne effectués, nous devons ajuster les valeurs résultantes pour l'écran en imitant l'exposition de la caméra. Tout comme l'appareil photo moderne de votre téléphone portable, nous devons prendre toutes les valeurs riches et variées de la lumière entrante (soleil ou ombre, tôt le matin, midi, crépuscule ou nuit profonde) et "écraser" ou "étendre" les valeurs dans la plage appropriée pour l'écran. Notre système d'émulation de l'exposition a un impact crucial sur l'aspect final du jeu : il s'agit en partie de physique, mais aussi d'un sentiment artistique subjectif. Il doit être ajusté de manière dynamique, non seulement en fonction de la lumière entrante provenant du monde du jeu, mais aussi en tenant compte de la différence entre la lumière à l'intérieur et à l'extérieur de l'habitacle d'un véhicule, afin que les instruments du tableau de bord soient lisibles. L'œil humain est une création incroyable, capable de s'ajuster et de s'adapter à une vaste gamme d'intensités lumineuses lorsque le regard passe d'un objet à l'autre. Nous avons dû faire preuve de beaucoup d'intelligence mathématique lors de l'analyse de l'histogramme de lumière pour chaque image et entre les images, afin d'adapter toutes ces valeurs à la gamme dynamique et au gamut de couleurs inévitablement limitées de l'écran, de manière à rendre tout ce qui est représenté à la fois crédible et discernable. Certaines améliorations étaient une cerise sur le gâteau, comme le fait qu'avec la gamme interne de shaders à virgule flottante de la cartographie de cube, nous pouvons obtenir des reflets beaucoup plus brillants sur les surfaces brillantes, comme les plans d'eau, le verre ou la peinture des voitures. Nous avons suivi cette voie de développement au sein d'une petite équipe jusqu'à ce que nous nous rendions compte que, même si les résultats intermédiaires étaient prometteurs, nous ne pourrions pas y parvenir sans rééquilibrer TOUS les matériaux/textures existants sur tous les objets du jeu. Lorsqu'un rayon de lumière est projeté sur la surface d'un objet, ce qui est réfléchi ou réfracté ne dépend pas seulement des propriétés de la lumière entrante, mais aussi largement des propriétés de la surface de l'objet. Au cours des nombreuses années de développement, nous avons accumulé des dizaines de milliers de textures, certaines provenant de sources photographiques avec divers réglages, d'autres peintes à la main, d'autres encore issues du processus de génération procédurale dans divers outils de conception. Au fil des années, la création de ces sources a fait l'objet de diverses écoles de pensée, ou de différents processus de création, mais le "vieux système d'éclairage" tenait selon l'expression avec du ruban adhésif et était en tout cas suffisamment imprécis pour révéler certains déséquilibres présents. Le nouveau système d'émulation d'exposition est beaucoup plus sensible et exige simplement des valeurs d'albédo de luminosité physiquement correctes. Notre surface de béton ne peut plus être d'un gris quelconque, et un arbre ne peut plus être simplement beau et vert. C'est à ce moment-là qu'une grande majorité de notre équipe artistique a dû être impliquée pour une refonte majeure.
Qu'a-t-on dû changer ?
Une fois que notre petite équipe pluridisciplinaire pionnière a mis en œuvre tous les changements nécessaires des nuanceurs au niveau du code et du GPU, ce qui a nécessité de nombreux mois d'expérimentation, nous avons dû impliquer beaucoup plus de personnes. Tout d'abord, nous avons dû réajuster toutes les sources de lumière dans le monde et les lumières des véhicules suivant la nouvelle logique. Dans certains cas, il s'agissait d'une conversion numérique relativement triviale quelque part dans une table. Dans d'autres cas, il a fallu qu'un concepteur de cartes se rende à nouveau dans un endroit particulier pour effectuer l'ajustement manuellement. Dans de nombreux cas, cela signifiait qu'un objet du jeu comme une usine ou une cour de livraison entière avec des sources de lumière prédéfinies devait être rouvert, ajusté et réexporté dans un outil 3D comme Maya. Nous parlons de milliers et de milliers de retouches de ce type, dans certains cas impliquant non seulement quelques douzaines de "chiffres" définissant les lumières, mais aussi des modifications majeures des lightmaps des objets, où des ombres et des effets de lumière factices avaient été "intégrés" pour un meilleur aspect dans l'ancien système de lumière. Enfin, pendant quelques semaines, la majorité de nos équipes ont dû arrêter de travailler sur tout ce qui était lié à nos futurs projets, et passer en revue tous les objets, la végétation, les véhicules et les effets du jeu et rééquilibrer les choses, encore et encore, pour les synchroniser sur une table de référence d'albédo partagée et convenue. Nous avons dû revoir les principes fondamentaux de nombreux sous-systèmes, notamment les lumières et les ampoules des véhicules, qui ont nécessité de nombreuses itérations et un réglage fin pour qu'elles aient l'air correctes selon les différents paramètres de lumière du jour. Nous disposons d'un nouvel ensemble de skyboxes à une résolution plus élevée et d'une variété de conditions météorologiques légèrement plus riche. En fin de compte, nous avons dû évaluer et ajuster chaque élément des jeux.
Qu'est-ce que tout cela signifie ?
Le nouveau système de lumière et le début de notre nouveau modèle de lumière physique est une étape critique vers un modèle physique complet et meilleur du monde entier dans nos jeux. Nous ne sommes pas encore tout à fait arrivés à un véritable rendu physique réaliste, mais la mise à jour 1.40 représente un pas important dans la bonne direction. Le nettoyage de l'ancien procédé et le fait de baser toutes les intensités lumineuses et les opérations sur la physique fondamentale rendent enfin possible le travail systémique futur dans ce domaine. Comme pour beaucoup de choses dans le développement à long terme, même si cette étape est une révolution mineure, elle n'est en même temps qu'un tournant vers une vision plus large.
Du point de vue des graphistes (mais cela s'applique aussi aux auteurs de mods !), nous introduisons un nouveau concept de création et de maintien des éléments du jeu "en contrôle" et en équilibre avec le reste de l'art. Les matériaux basés sur des photos, fréquemment utilisés comme sources d'art dans le jeu, doivent maintenant passer par un processus de calibrage avant d'être applicables, sinon on peut se retrouver avec une surface trop sombre ou trop claire, ce qui affecte l'exposition et la perception de la scène générale. Souvent, il vaut la peine d'explorer d'autres méthodes de création de matériaux, comme la génération procédurale haute résolution dans des outils comme Substance Designer. On fait désormais davantage confiance au système de rendu du moteur, plutôt que de simuler et d'intégrer de subtils effets d'ombre et de lumière dans les modèles. Entre le nouvel éclairage et la SSAO, notre code de shaders joue désormais un rôle plus important dans la création de l'aspect final. Il en résulte un peu moins de responsabilité, de contrôle et éventuellement de travail pour l'artiste. Cela peut être à la fois bon et mauvais, selon ce que l'on essaie d'obtenir dans chaque cas particulier.
Comme pour chaque changement majeur, il y a eu une tonne de problèmes de démarrage, beaucoup d'impasses à surmonter, et la quantité d'efforts que nous avons déployés a largement dépassé les attentes que nous avions il y a un an. Nous avons encore un peu de bêta ouverte devant nous pour peaufiner les dernières difficultés. Mais dès à présent, nous sommes convaincus que les changements apportés valent tous les efforts consentis. Attendez de conduire votre camion au petit matin le long de la côte italienne, par une belle fin d'après-midi en Suède, sous la bruine dans l'État de Washington, sous un soleil de plomb en Espagne ou en entrant dans un relais routier bien éclairé au milieu de la nuit. Tout au long de ce processus de modification, nous avons fait de notre mieux pour ne pas provoquer d'augmentation majeure de la charge sur le CPU ou le GPU. Quelques-uns des nouveaux effets ont un coût de performance légèrement plus élevé, mais dans l'ensemble, nous pensons que les changements sont très bien équilibrés, ou permettent des compromis raisonnables dans les options de jeu, afin de maintenir des performances acceptables. Nous ne voulons absolument pas perdre les joueurs et les fans qui jouent à nos jeux sans le matériel le plus récent en poussant trop loin les effets graphiques. Nous sommes impatients de vous apporter de nouvelles améliorations et de nouvelles fonctionnalités, alors cramponnez-vous à vos volants !
Vous préférez les journaux de modifications ? Voyons cela :
Les principaux changements internes
Mais aussi de nombreux petits ajustements visuels
Et une très grande quantité d'autres petits ajustements, corrections et changements.
Comme vous pouvez l'imaginer maintenant, tout cela a représenté une énorme quantité de travail pour notre équipe. L'étincelle initiale (jeu de mots) qui a rendu tout cela possible est la venue d'une petite équipe de programmeurs et d'un artiste des effets visuels (photo ci-dessous) [NDLR : Image disponible au début de l'article]. Ils n'ont cessé de bidouiller, d'itérer et d'élaborer des plans jusqu'à ce que l'ensemble de l'équipe ait tout compris, et qu'il ne reste plus qu'à consacrer de nombreuses années d'heures de travail supplémentaires pour tout adapter à la nouvelle logique.
Le nouveau système de lumière, tout comme l'implémentation du support FMOD pour la partie SFX de nos jeux, est encore en cours de développement, de polissage et de mise au point. Et il y a encore beaucoup de travail devant nous. À ce stade, nous pensons qu'il est déjà plus ou moins dans une forme présentable, et vous pouvez en faire l'expérience si vous décidez de l'essayer dans une version bêta ouverte en ce moment sur Steam.
Alors s'il vous plaît, si vous voulez nous aider, mettez vos lunettes de soleil préférées et aidez-nous à attraper le lever de soleil parfait ! Nous sommes impatients de lire vos pensées et opinions sur le nouveau système d'éclairage. Merci beaucoup !
----------------------------------------------------------------------------------------------------
FORUM
----------------------------------------------------------------------------------------------------
Si vous souhaitez réagir à cet article, posez vos questions ou tout simplement discuter entre passionnés, inscrivez-vous dès maintenant sur notre forum. De nombreuses rubriques sont disponibles et n'attendent que vos commentaires